/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.paroquiadegloria.ejc.controlador;

import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.paroquiadegloria.ejc.dao.EncontroDao;
import org.paroquiadegloria.ejc.entidade.Encontro;

/**
 *
 * @author jadson
 */
public class ControladorEncontro {

    EncontroDao encontroDao;
    
    /**
     * Cadastra um novo encontro na base de dados. Antes de efetuar o cadastro é 
     * verificado se já existe encotro com a mesma descrição.
     * @param encontro 
     */
    public void cadastrarEncontro(Encontro encontro) throws Exception {
        if (!encontroJaExiste(encontro.getTitulo(), encontro.getAno())){
            
            //Validar data de início e fim do encontro
            //caso sejam diferentes de null a data inicial deve ser menor ou igual
            //que a data final
            
            encontroDao = new EncontroDao();
            encontroDao.inserirEncontro(encontro);
        }else{
            throw new Exception("Encontro já cadastrado.");
        }
    }

    /**
     * Verifica se já existe um encontro cadastrado na base de dados com o mesmo
     * nome passado por parâmetro.
     * @param titulo Título do Encotro a ser verificado.
     * @return Retorna true se já existir o encontro na base de dados e false 
     * caso contrério.
     */
    public boolean encontroJaExiste(String titulo, int ano) {
        encontroDao = new EncontroDao();
        try {
            if(encontroDao.obterEncontroPorTituloAno(titulo, ano) != null){
                return true;
            }
        } catch (Exception ex) {
            Logger.getLogger(ControladorEncontro.class.getName()).log(Level.SEVERE, null, ex);
        }
        return false;
    }
    
    /**
     * Obtém todos os encontros cadastrados na base de dados ordenados pelo 
     * ano de forma decrescente
     * @return {@link List<Encontro>} cadastrados na base de dados ordenados pelo 
     * ano de forma decrescente
     * @throws Exception 
     */
    public List<Encontro> obterTodosOsEncotros() throws Exception{
        encontroDao = new EncontroDao();
        return encontroDao.obterTodosOsEncontros();
    }
}
